home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-mimemhs-body-equival-02.txt < prev    next >
Text File  |  1993-03-03  |  37KB  |  1,378 lines

  1.  
  2. draft            X.400/MIME body equivalences           Jun 92
  3.  
  4.  
  5.     Equivalences between 1988 X.400 and RFC-822 Message Bodies
  6.  
  7.                      Thu Jun 25 19:50:44 1992
  8.  
  9.  
  10.                      Harald Tveit Alvestrand
  11.                            SINTEF DELAB
  12.                Harald.T.Alvestrand@delab.sintef.no
  13.  
  14.  
  15.                         Steven J. Thompson
  16.                         Soft*Switch, Inc.
  17.                        sjt@gateway.ssw.com
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.     Status of this Memo
  25.  
  26.          This document is an Internet Draft.  Internet Drafts
  27.          are working documents of the Internet Engineering
  28.          Task Force (IETF), its Areas, and its Working Groups.
  29.          Note that other groups may also distribute working
  30.          documents as Internet Drafts.
  31.  
  32.          Internet Drafts are draft documents valid for a
  33.          maximum of six months. Internet Drafts may be
  34.          updated, replaced, or obsoleted by other documents at
  35.          any time.  It is not appropriate to use Internet
  36.          Drafts as reference material or to cite them other
  37.          than as a "working draft" or "work in progress."
  38.  
  39.          Please check the I-D abstract listing contained in
  40.          each Internet Draft directory to learn the current
  41.          status of this or any other Internet Draft.
  42.  
  43.          If consensus is reached in the IETF MIME-MHS
  44.          Interworking Working Group, it will be submitted to
  45.          the IESG asking that it be recommended to the IAB as
  46.          a Proposed Standard protocol specification.
  47.  
  48.     Please send comments to the MIME-MHS mailing list:
  49.     <mime-mhs@surfnet.nl>
  50.  
  51.  
  52.  
  53.  
  54.  
  55. Alvestrand, Thompson      Exp Dec 92                  [Page 1]
  56.  
  57. draft            X.400/MIME body equivalences           Jun 92
  58.  
  59.  
  60.     1.  Introduction
  61.  
  62.     This document is a companion to [MAPPING], which defines
  63.     the principles behind interworking between MIME-based
  64.     RFC-822 mail and X.400 mail. This document describes the
  65.     content of the "IANA MHS/MIME Equivalence table"
  66.     referenced in the companion document, and defines the
  67.     initial configuration of this table.  Mappings for new
  68.     MIME content-types and/or X.400 body part types should be
  69.     registered with the IANA to minimize redundancy and
  70.     promote interoperability.
  71.  
  72.     In MIME, the term "content-type" is used to refer to an
  73.     information object contained in  the body of a message.
  74.     In contrast, X.400 uses the term "body part type."  In
  75.     this document, the term "body part" is used to refer to
  76.     either.
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. Alvestrand, Thompson      Exp Dec 92                  [Page 2]
  111.  
  112. draft            X.400/MIME body equivalences           Jun 92
  113.  
  114.  
  115.     2.  Equivalence Table Definition
  116.  
  117.     For each MIME content-type/X.400 body part pair, the
  118.     Equivalence Table will contain an entry with the following
  119.     sections:
  120.  
  121.  
  122.     X.400 Body Part
  123.          This section identifies the X.400 Body Part governed
  124.          by this Table entry. It includes any OBJECT
  125.          IDENTIFIERs or other parameters necessary to uniquely
  126.          identify the Body Part.
  127.  
  128.  
  129.     MIME Content-Type
  130.          This section identifies the MIME content-type
  131.          governed by this Table entry.  The MIME content-type
  132.          named here must be registered with the IANA.
  133.  
  134.  
  135.     Conversion Type
  136.          This section identifies the type of conversion
  137.          applied.  See the section on Generic Conversions for
  138.          an explanation of the possible values.
  139.  
  140.  
  141.     Comments (optional)
  142.          This section gives any additional commentary that
  143.          might be useful in understanding the mapping between
  144.          the X.400 and MIME representations.
  145.  
  146.  
  147.     The initial Equivalence Table entries in this document are
  148.     described using this convention.  Any future submissions
  149.     to the IANA should follow this format.
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165. Alvestrand, Thompson      Exp Dec 92                  [Page 3]
  166.  
  167. draft            X.400/MIME body equivalences           Jun 92
  168.  
  169.  
  170.     3.  Generic conversions
  171.  
  172.     3.1.  Byte copy
  173.  
  174.     This is the trivial case, that is, no conversion at all.
  175.     The byte stream is simply copied between MIME and X.400.
  176.  
  177.     This is the preferred conversion, since it is the
  178.     simplest.
  179.  
  180.     Implementors and vendors will be registering OBJECT
  181.     IDENTIFIERs and MIME content-types for their various
  182.     objects.  They are STRONGLY ENCOURAGED to specify their
  183.     content formats such that a gateway can use Byte Copy to
  184.     map between them.
  185.  
  186.     Note that in some cases, it is necessary to define exactly
  187.     which ASN.1 construct to replace with the content of the
  188.     MIME object.
  189.  
  190.  
  191.     3.2.  Text Conversion
  192.  
  193.     This type of conversion applies to text objects that
  194.     cannot be mapped using a simple Byte Copy.  Conversion
  195.     involves scanning and reformatting the object.  For
  196.     example, the MIME and X.400 objects might differ in their
  197.     encoding of nonstandard characters, or line or page
  198.     breaks.
  199.  
  200.  
  201.     3.3.  Image Conversion
  202.  
  203.     This conversion type applies to raster images, like Group
  204.     3 Facsimile or JPEG.  Again, it differs from Byte Copy in
  205.     that it involves scanning reformatting the byte stream.
  206.     It differs from Text Conversion in that it is pixel-
  207.     oriented, rather than character-oriented.
  208.  
  209.  
  210.     3.4.  Tunneling
  211.  
  212.     This is not a conversion at all, but an encapsulation of
  213.     the object.  This is the fallback conversion, used when no
  214.     explicit mapping applies.
  215.  
  216.  
  217.  
  218.  
  219.  
  220. Alvestrand, Thompson      Exp Dec 92                  [Page 4]
  221.  
  222. draft            X.400/MIME body equivalences           Jun 92
  223.  
  224.  
  225.     4.  Conversion Table for known X.400 and MIME Types
  226.  
  227.     This section itemizes the equivalences for all currently
  228.     known MIME content-types and X.400 body parts.
  229.  
  230.  
  231.     4.1.  MIME to X.400 Table
  232.  
  233.     MIME content-type          X.400 Body Part             Section
  234.     -----------------          ------------------          -------
  235.     text/plain
  236.       charset=us-ascii         ia5-text                     7.1
  237.       charset=iso-8859-x       EBP - GeneralText            7.2
  238.     text/richtext              no mapping defined           5.2
  239.     application/oda            EBP - ODA                    7.4
  240.     application/octet-stream   bilaterally-defined          7.3
  241.     application/postscript     EBP - mime-postscript-body   5.4, 7.6
  242.     image/g3fax                g3-facsimile                 6.2, 7.5
  243.     image/jpeg                 EBP - mime-jpeg-body         5.5, 7.7
  244.     image/gif                  EBP - mime-gif-body          5.6, 7.8
  245.     audio/basic                no mapping defined           5.2
  246.     video/mpeg                 no mapping defined           5.2
  247.  
  248.     Abbreviation: EBP - Extended Body Part
  249.  
  250.  
  251.     4.2.  X.400 to MIME Table
  252.                              Basic Body Parts
  253.  
  254.     X.400 Basic Body Part      MIME content-type           Section
  255.     ---------------------      --------------------        -------
  256.     ia5-text                   text/plain;charset=us-ascii 7.1
  257.     voice                      No Mapping Defined          6.1
  258.     g3-facsimile               image/g3fax                 6.2, 7.5
  259.     g4-class1                  no mapping defined          6.1
  260.     teletex                    no mapping defined          6.1
  261.     videotex                   no mapping defined          6.1
  262.     encrypted                  no mapping defined          6.1
  263.     bilaterally-defined        application/octet-stream    7.3
  264.     nationally-defined         no mapping defined          6.1
  265.     externally-defined         See Extended Body Parts     6.1
  266.  
  267.     X.400 Extended Body Part   MIME content-type              Section
  268.     -------------------------  --------------------           -------
  269.     GeneralText                text/plain;charset=iso-8859-x  7.2
  270.  
  271.  
  272.  
  273.  
  274.  
  275. Alvestrand, Thompson      Exp Dec 92                  [Page 5]
  276.  
  277. draft            X.400/MIME body equivalences           Jun 92
  278.  
  279.  
  280.     ODA                        application/oda                7.4
  281.     mime-postscript-body       application/postscript         5.3, 7.6
  282.     mime-jpeg-body             image/jpeg                     5.4, 7.7
  283.     mime-gif-body              image/gif                      5.5, 7.8
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330. Alvestrand, Thompson      Exp Dec 92                  [Page 6]
  331.  
  332. draft            X.400/MIME body equivalences           Jun 92
  333.  
  334.  
  335.     5.  Newly defined X.400 Body Parts
  336.  
  337.     This section defines new X.400 Body Parts for the purposes
  338.     of interworking with MIME.
  339.  
  340.     All new X.400 Body Parts defined here will be Extended
  341.     Body Parts, as defined in CCITT Recommendation X.420
  342.     [X.420].
  343.  
  344.  
  345.     5.1.  Use of OBJECT IDENTIFIERs and ASN.1 MACROS
  346.  
  347.     X.420 dictates that Extended Body Parts shall:
  348.  
  349.     (1)  use OBJECT IDENTIFIERs (OIDs) to uniquely identify
  350.          the contents, and
  351.  
  352.     (2)  be defined by using the ASN.1 Macro:
  353.  
  354.             EXTENDED-BODY-PART-TYPE MACRO::=
  355.             BEGIN
  356.                TYPE NOTATION  ::= Parameters Data
  357.                VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)
  358.  
  359.                Parameters     ::=  "PARAMETERS" type "IDENTIFIED"
  360.                                    "BY" value(OBJECT IDENTIFIER)
  361.                                  | empty;
  362.                Data           ::= "DATA" type
  363.             END
  364.  
  365.     To meet these requirements, this document uses the OID
  366.  
  367.        mime-mhs-bodies
  368.  
  369.     defined in [MAPPING], as the root OID for X.400 Extended
  370.     Body Parts defined for MIME interworking.
  371.  
  372.     Each Extended Body Part contains Data and optional
  373.     Parameters, each being named by an OID.  To this end, two
  374.     OID subtrees are defined under mime-mhs-bodies, one for
  375.     Data, and the other for Parameters:
  376.  
  377.        mime-mhs-bp-data  OBJECT IDENTIFIER ::=
  378.                        { mime-mhs-bodies 1 }
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385. Alvestrand, Thompson      Exp Dec 92                  [Page 7]
  386.  
  387. draft            X.400/MIME body equivalences           Jun 92
  388.  
  389.  
  390.        mime-mhs-bp-parameter OBJECT IDENTIFIER ::=
  391.                        { mime-mhs-bodies 2 }
  392.  
  393.  
  394.     All definitions of X.400 body parts submitted to the IANA
  395.     for registration must use the Extended Body Part Type
  396.     macro for the definition.  See the next section for an
  397.     example.
  398.  
  399.     Lastly, the IANA will use the mime-mhs-bp-data and mime-
  400.     mhs-bp-parameter OIDs as root OIDs for any new MIME
  401.     content-type/subtypes that aren't otherwise registered in
  402.     the Equivalence Table.
  403.  
  404.  
  405.     5.2.  The Generic MIME Extended Body Part
  406.  
  407.     The following X.400 Body Part is defined to carry any MIME
  408.     content-type for which there is no explicit IANA
  409.     registered mapping.
  410.  
  411.  
  412.       mime-body-part EXTENDED-BODY-PART-TYPE
  413.          PARAMETERS MimeParameters
  414.             IDENTIFIED BY mime-generic-parameters
  415.          DATA            OCTET STRING
  416.          ::= mime-generic-data
  417.  
  418.       MimeParameters ::=
  419.           SEQUENCE {
  420.               content-type       IA5String,
  421.               content-parameters SEQUENCE OF
  422.                                       SEQUENCE {
  423.                                           parameter           IA5String,
  424.                                           parameter-value     IA5String
  425.                                       }
  426.  
  427.                                       -- from RFC-1327, sec. 5.1.12
  428.               other-header-fields RFC822FieldList
  429.           }
  430.  
  431.       mime-generic-parameters OBJECT IDENTIFIER ::=
  432.           { mime-mhs-bp-parameter 1 }
  433.       mime-generic-data       OBJECT IDENTIFIER ::=
  434.           { mime-mhs-bp-data  1 }
  435.  
  436.  
  437.  
  438.  
  439.  
  440. Alvestrand, Thompson      Exp Dec 92                  [Page 8]
  441.  
  442. draft            X.400/MIME body equivalences           Jun 92
  443.  
  444.  
  445.     To convert the MIME content-type into the X.400 mime-
  446.     body-part:
  447.  
  448.     (1)  Copy the "type/subtype" string from the MIME
  449.          Content-Type: header field into
  450.          MimeParameters.content-type
  451.  
  452.     (2)  For each "parameter=value" string in the MIME
  453.          Content-Type header field, create a
  454.          MimeParameters.content-parameters structure, and copy
  455.          the "parameter" string into MimeParameters.content-
  456.          parameters.parameter field and the "value" string
  457.          into the paired MimeParameters.content-
  458.          parameters.parameter-value field.
  459.  
  460.     (3)  Convert the MIME body part into its canonical form.
  461.          (See appendix H of RFC 1341 [MIME] for a discussion
  462.          of canonical in this context.) Said another way,
  463.          reverse the transfer encoding to recover the original
  464.          byte stream.
  465.  
  466.     (4)  Copy the canonical byte stream into the mime-body-
  467.          part.data octet string.
  468.  
  469.     (5)  Remove the Content-type and the Content-transfer-
  470.          encoding header fields from the MIME body part's
  471.          RFC822 header.
  472.  
  473.     (6)  Any header fields starting with "Content-" in the
  474.          MIME body part is placed in the optional other-
  475.          header-fields structure. Note that this can only
  476.          occur when the MIME content-type occurs as part of a
  477.          "multipart" content-type.
  478.  
  479.     The mapping from the X.400 mime-body-part to a MIME
  480.     content-type is the inverse of the above steps.
  481.  
  482.  
  483.     5.3.  The PostScript body part
  484.  
  485.     The following Extended Body Part is defined for PostScript
  486.     data streams.  It has no parameters.
  487.  
  488.  
  489.       postscript-body-part EXTENDED-BODY-PART-TYPE
  490.  
  491.  
  492.  
  493.  
  494.  
  495. Alvestrand, Thompson      Exp Dec 92                  [Page 9]
  496.  
  497. draft            X.400/MIME body equivalences           Jun 92
  498.  
  499.  
  500.         DATA             OCTET STRING
  501.         ::= mime-postscript-body
  502.  
  503.       mime-postscript-body OBJECT IDENTIFIER ::=
  504.                 { mime-mhs-bp-data 2 }
  505.  
  506.  
  507.     5.4.  The JPEG body part
  508.  
  509.     The following Extended Body Part is defined for JPEG data
  510.     streams.  It has no parameters.
  511.  
  512.  
  513.        jpeg-body-part EXTENDED-BODY-PART-TYPE
  514.          DATA            OCTET STRING
  515.          ::= mime-jpeg-body
  516.  
  517.        mime-jpeg-body OBJECT IDENTIFIER ::=
  518.                { mime-mhs-bp-data 3 }
  519.  
  520.  
  521.  
  522.     5.5.  The GIF body part
  523.  
  524.     The following Extended Body Part is defined for GIF data
  525.     streams.  It has no parameters.
  526.  
  527.  
  528.        gif-body-part EXTENDED-BODY-PART-TYPE
  529.          DATA            OCTET STRING
  530.          ::= mime-gif-body
  531.  
  532.        mime-gif-body OBJECT IDENTIFIER ::=
  533.                { mime-mhs-bp-data 4 }
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550. Alvestrand, Thompson      Exp Dec 92                 [Page 10]
  551.  
  552. draft            X.400/MIME body equivalences           Jun 92
  553.  
  554.  
  555.     6.  Newly defined MIME content-types
  556.  
  557.     This section defines new MIME content-types for the
  558.     purposes of interworking with X.400.
  559.  
  560.  
  561.     6.1.  The application/x400-bp content-type
  562.  
  563.     This content-type is defined to carry any X.400(88) body
  564.     part for which there is no registered IANA mapping.
  565.  
  566.     The content-type field is
  567.  
  568.       application/x400-bp
  569.  
  570.     The parameters are:
  571.  
  572.           bp-type=<INTEGER or OBJECT IDENTIFIER>
  573.  
  574.     The body contains the raw ASN.1 IPM.body octet stream,
  575.     including the initial tag octet.
  576.  
  577.     If the body is a basic body part, the bp-type parameter is
  578.     set to the number of the body part's context-specific tag,
  579.     that is, the tag of the IPMS.Body.BodyPart component.
  580.  
  581.     If the body is an Extended Body Part, the bp-type
  582.     parameter is set to the OBJECT IDENTIFIER from
  583.  
  584.       IPMS.body.externally-defined.data.direct-reference
  585.  
  586.  
  587.     No attempt is made to turn the parameters of Extended Body
  588.     Parts into MIME parameters.  (This task is the
  589.     responsibility of the recipient's UA).
  590.  
  591.     For example, a basic VideotexBodyPart will have
  592.  
  593.       Content-type=application/x400-bp; bp-type=6
  594.  
  595.     whilst a Extended Videotex body part will have
  596.  
  597.       Content-type=application/x400-bp; bp-type=2.6.1.4.5
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605. Alvestrand, Thompson      Exp Dec 92                 [Page 11]
  606.  
  607. draft            X.400/MIME body equivalences           Jun 92
  608.  
  609.  
  610.     6.2.  The image/g3fax content-type
  611.  
  612.     This content-type is defined to carry G3 Facsimile byte
  613.     streams.
  614.  
  615.     In general, a G3Fax image contains 3 pieces of
  616.     information:
  617.  
  618.     (1)  A set of flags indicating the particular coding
  619.          scheme.  CCITT Recommendation T.30 defines how the
  620.          flags are transmitted over telephones. In this
  621.          medium, the flags are carried as parameters in the
  622.          MIME content-type header field.
  623.  
  624.     (2)  A structure that divides the bits into pages.  CCITT
  625.          recommendation T.30 describes how to define page
  626.          boundaries.  A page break algorithm is defined here
  627.          that is independent of how the image data is
  628.          conveyed.
  629.  
  630.     (3)  For each page, a sequence of bits that form the
  631.          encoding of the image.  CCITT recommendation T.4
  632.          defines the bit image format.  This is used without
  633.          change.
  634.  
  635.     6.2.1.  G3Fax Parameters
  636.  
  637.     The following parameters are defined:
  638.  
  639.  
  640.     (1)  page-length - possible values: A4, B4 and Unlimited
  641.  
  642.     (2)  page-width - possible values: A3, A4, B4
  643.  
  644.     (3)  encoding - possible values: 1-dimensional, 2-
  645.          dimensional, Uncompressed
  646.  
  647.     (4)  resolution - possible values: Fine, Coarse
  648.  
  649.     (5)  DCS - a bit string, represented in Base64.
  650.  
  651.     (6)  pages - an integer, giving the number of pages in the
  652.          document
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660. Alvestrand, Thompson      Exp Dec 92                 [Page 12]
  661.  
  662. draft            X.400/MIME body equivalences           Jun 92
  663.  
  664.  
  665.     If nothing is specified, the default parameter settings
  666.     are:
  667.  
  668.       page-length=A4
  669.       page-width=A4
  670.       encoding=1-dimensional
  671.       resolution=Coarse
  672.  
  673.     It is possible (but misleading) to view the representation
  674.     of these values as single-bit flags. They correspond to
  675.     the following bits of the T.30 control string and X.400
  676.     G3FacsimileParameters:
  677.  
  678.     Parameter               T.30 bit        X.400 bit
  679.  
  680.     page-length=A4             no bit set
  681.     page-length=B4          19              21
  682.     page-length=Unlimited   20              20
  683.  
  684.     page-width=A4              no bit set
  685.     page-width=A3           18              22
  686.     page-width=B4           17              23
  687.  
  688.     encoding=1-dimensional     no bit set
  689.     encoding=2-dimensional  16              8
  690.     encoding=Uncompressed   26              30
  691.  
  692.     resolution=Coarse          no bit set
  693.     resolution=Fine         15              9
  694.  
  695.     The reason for the different bit numbers is that X.400
  696.     counts bits in an octet from the MSB down to the LSB,
  697.     while T.30 uses the opposite numbering scheme.
  698.  
  699.     If any bit but these are set in the Device Control String,
  700.     the DCS parameter should be supplied.
  701.  
  702.  
  703.     6.2.2.  Content Encoding
  704.  
  705.     X.400 defines the g3-facsimile data stream as a SEQUENCE
  706.     of BIT STRINGs. Each BIT STRING is a page of facsimile
  707.     image data, encoded as defined by Recommendation T.4.  The
  708.     following content encoding is reversible between MIME and
  709.     X.400 and ensures that page breaks are honored in the MIME
  710.  
  711.  
  712.  
  713.  
  714.  
  715. Alvestrand, Thompson      Exp Dec 92                 [Page 13]
  716.  
  717. draft            X.400/MIME body equivalences           Jun 92
  718.  
  719.  
  720.     representation.
  721.  
  722.     An EOL is defined as a bit sequence of
  723.  
  724.        000000000001 (eleven zeroes and a one).
  725.  
  726.  
  727.     Each page of the message is delimited by a sequence of six
  728.     (6) EOLs that MUST start on a byte boundary.  The image
  729.     bit stream is padded as needed to achieve this alignment.
  730.  
  731.     Searching for the boundary is a matter of searching for
  732.     the byte sequence (HEX) 00 10 01 00 10 01 00 10 01, which
  733.     cannot occur inside the image.
  734.  
  735.     See Section 7.5 for the algorithm on conversion between
  736.     this encoding and the X.400 encoding.
  737.  
  738.  
  739.     7.  Equivalence Definitions
  740.  
  741.  
  742.     7.1.  IA5Text - text/plain
  743.  
  744.     X.400 Body Part: IA5Text
  745.     MIME Content-type: text/plain; charset=US-ASCII
  746.     Conversion Type: Byte copy
  747.     Comments:
  748.  
  749.     When mapping from X.400 to MIME, the "repertoire"
  750.     parameter is ignored.
  751.  
  752.     When mapping from MIME to X.400, the "repertoire"
  753.     parameter is set to IA5 (5).
  754.  
  755.     NOTE: The MIME Content-type headers are omitted, when
  756.     mapping from X.400 to MIME, if and only if the IA5Text
  757.     body part is the only body part in the IPMS.Body sequence.
  758.  
  759.     NOTE: IA5Text specifies the "currency" symbol in position
  760.     2/4. This is converted without comment to the "dollar"
  761.     symbol, since the author of this document has seen many
  762.     documents in which the position was intended to indicate
  763.     "dollar" while he has not yet seen one in which the
  764.     "currency" symbol is intended.
  765.  
  766.  
  767.  
  768.  
  769.  
  770. Alvestrand, Thompson      Exp Dec 92                 [Page 14]
  771.  
  772. draft            X.400/MIME body equivalences           Jun 92
  773.  
  774.  
  775.     (For reference: The T.50 (1988) recommendation, which
  776.     defines IA5, talks about ISO registered set number 2,
  777.     while ASCII, using the "dollar" symbol, is ISO registered
  778.     set number 6. There are no other differences.)
  779.  
  780.  
  781.     7.2.  GeneralText - text/plain (ISO-8859)
  782.  
  783.     X.400 Body Part: GeneralText; CharacterSets in
  784.                             6,100,101,109,110,126,127,138,144,148
  785.     MIME Content-Type: text/plain; charset=ISO-8859-(1-9)
  786.     Conversion Type: Byte copy
  787.     Comments:
  788.  
  789.     When mapping from X.400 to MIME, the character-set chosen
  790.     from table below according to the value of
  791.     Parameters.CharacterSets.
  792.  
  793.     When mapping from MIME to X.400, GeneralText is an
  794.     Extended Body Part, hence it requires an OID.  The OID for
  795.     the GeneralText body is defined in [MOTIS], part 8, annex
  796.     D, as {2 6 1 4 11}. The OID for the parameters is {2 6 1
  797.     11 11}.
  798.  
  799.     The Parameters.CharacterSets is set from table below
  800.     according to the value of "charset"
  801.  
  802.     NOTE: The GeneralText body part is defined in ISO 10021-8
  803.     [MOTIS], and NOT in the corresponding CCITT
  804.     recommendation. Its parameters were heavily modified in a
  805.     defect report, and will be a SET OF INTEGER (indicating
  806.     the ISO registry numbers of all the used sets) in the next
  807.     version of the standard.
  808.  
  809.     The following table lists the MIME character sets and the
  810.     corresponding ISO registry numbers. If no correspondence
  811.     is found, this conversion fails, and the generic body part
  812.     approach is used.
  813.  
  814.     MIME charset    ISO IR numbers          Comment
  815.     -----------------------------------------------
  816.     ISO-8859-1      6, 100                  West European "8-bit ASCII"
  817.     ISO-8859-2      6, 101                  East European
  818.     ISO-8859-3      6, 109                  <regarded as obsolete>
  819.     ISO-8859-4      6, 110                  <regarded as obsolete>
  820.  
  821.  
  822.  
  823.  
  824.  
  825. Alvestrand, Thompson      Exp Dec 92                 [Page 15]
  826.  
  827. draft            X.400/MIME body equivalences           Jun 92
  828.  
  829.  
  830.     ISO-8859-5      6, 144                  Cyrillic
  831.     ISO-8859-6      6, 127                  Arabic
  832.     ISO-8859-7      6, 126                  Greek
  833.     ISO-8859-8      6, 138                  Hebrew
  834.     ISO-8859-8      6, 148                  Other Latin-using languages
  835.  
  836.  
  837.     When converting from MIME to X.400, generate the correct
  838.     OIDs for use in the message envelope's Encoded Information
  839.     Types by looking up the ISO IR number in the above table,
  840.     and then appending it to the id-cs-eit-authority {1 0
  841.     10021 7 1 0} OID.
  842.  
  843.     The escape sequences to designate and invoke the relevant
  844.     character sets in their proper positions must be added to
  845.     the front of the GeneralText character string.
  846.  
  847.  
  848.     7.3.  BilaterallyDefined - application/octet-stream
  849.  
  850.     X.400 Body Part: BilaterallyDefined
  851.     MIME Content-Type: Application/Octet-Stream (no parameters)
  852.     Conversion Type: Byte copy
  853.     Comments:
  854.  
  855.     When mapping from MIME to X.400, if there are parameters
  856.     present in the Content-Type: header field, the conversion
  857.     fails since the BilaterallyDefined Body Part does not have
  858.     any corresponding ASN.1 parameters.
  859.  
  860.     DISCUSSION: The parameters "name" "type" and "conversions"
  861.     are advisory, but may in some cases give vital hints on
  862.     the expected handling of the file. The parameter
  863.     "conversions" is not fully defined, but it is expected
  864.     that it will be useful, so we cannot drop it and expect
  865.     people to be satisfied.
  866.  
  867.     The parameter "padding" changes the interpretation of the
  868.     last byte of the data, and so cannot be deleted.
  869.  
  870.     An option is to prepend an IA5 body part that contains the
  871.     parameter text; this will aid unmodified readers, and can
  872.     probably be made reversible with suitable chicanery, but
  873.     is it worth it????
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880. Alvestrand, Thompson      Exp Dec 92                 [Page 16]
  881.  
  882. draft            X.400/MIME body equivalences           Jun 92
  883.  
  884.  
  885.     Also, use of BilaterallyDefined Body Parts is specifically
  886.     deprecated in both 1988 and 1992 X.400.  It is retained
  887.     solely for backward compatibility with 1984 systems. 1992
  888.     X.400 defines a File Transfer Body Part to solve this
  889.     problem (i.e. binary file transfer through email). The
  890.     standard and its regional profiles are not solid enough
  891.     yet to exploit as a solution for this problem.
  892.  
  893.  
  894.     7.4.  ODA - application/oda
  895.  
  896.     X.400 Body Part: ODA
  897.     MIME Content-Type: application/oda
  898.     Conversion Type: Byte copy
  899.     Comments:
  900.  
  901.     The ODA body part is defined in the CCITT document T.411
  902.     [T.411], appendix E, section E.2, "ODA identification in
  903.     the P2 protocol of MHS"
  904.  
  905.     An abbreviated version of its ASN.1 definition is:
  906.  
  907.     oda-body-part EXTENDED-BODY-PART-TYPE
  908.             PARAMETERS      OdaBodyPartParameters
  909.             DATA            OdaData
  910.             ::= id-et-oda
  911.  
  912.     OdaBodyPartParameters ::= SET {
  913.             document-application-profile    [0] OBJECT IDENTIFIER
  914.             document-architecture-class     [1] INTEGER {
  915.                                             formatted (0)
  916.                                             processable (1)
  917.                                             formatted-processable(2)}}
  918.  
  919.     id-et-oda OBJECT IDENTIFIER ::= { 2 8 1 0 1 }
  920.  
  921.     Mapping from X.400 to MIME, the following is done:
  922.  
  923.     The Parameters.document-application-profile is mapped onto
  924.     the MIME parameter "profile" according to the table below.
  925.  
  926.  
  927.     Profile         OBJECT IDENTIFIER
  928.  
  929.     Q112            { iso (1) identified-organization (3) ewos (16)
  930.  
  931.  
  932.  
  933.  
  934.  
  935. Alvestrand, Thompson      Exp Dec 92                 [Page 17]
  936.  
  937. draft            X.400/MIME body equivalences           Jun 92
  938.  
  939.  
  940.                       eg (2) oda (6) profile (0)  q112 (1) }
  941.  
  942.     The Parameters.document-architecture-class is mapped onto
  943.     the MIME parameter "class" according to the table below
  944.  
  945.     String                  Integer
  946.  
  947.     formatted               formatted(0)
  948.     processable             processable(1)
  949.     formatted-processable   formatted-processable(2)
  950.  
  951.     NOTE: This parameter is not defined in the MIME document.
  952.  
  953.     The body of the MIME content-type is the Data part of the
  954.     ODA body part.
  955.  
  956.     When mapping from MIME to X.400, the following steps are
  957.     done:
  958.  
  959.     The Parameters.document-application-profile and
  960.     Parameters.document-architecture-class are set from the
  961.     tables above.  If any of the parameters are missing, the
  962.     values for Q112 and formatted-processable are used.
  963.  
  964.     It is an option for the gateway implementor to try to
  965.     access them from inside the document, where they are
  966.     defined as
  967.  
  968.      document-profile.document-characteristics.document-architecture-class
  969.  
  970.      document-profile.document-characteristics.document-application-profile
  971.  
  972.     Gateways are NOT required to do this, since the document-
  973.     characteristics are optional parameters.  If a gateway
  974.     does not, it simply uses the defaulting rules defined
  975.     above.
  976.  
  977.     The OBJECT IDENTIFIERs for the document application
  978.     profile and for ODA {2 8 0 0} must be added to the Encoded
  979.     Information Types parameter of the message envelope.
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990. Alvestrand, Thompson      Exp Dec 92                 [Page 18]
  991.  
  992. draft            X.400/MIME body equivalences           Jun 92
  993.  
  994.  
  995.     7.5.  g3-facsimile - image/g3fax
  996.  
  997.     X.400 Body part: g3-facsimile
  998.     MIME Content-Type: image/g3fax
  999.     Conversion Type: nearly Byte copy
  1000.     Comments:
  1001.  
  1002.     The Parameters of the X.400 G3Fax body part are mapped to
  1003.     the corresponding Parameters on the MIME Image/G3Fax body
  1004.     part and vice versa.  Note that:
  1005.  
  1006.     (1)  If fineResolution is not specified, pixels will be
  1007.          twice as tall as they are wide
  1008.  
  1009.     (2)  If any bit not corresponding to a specially named
  1010.          option is set in the G3Fax NonBasicParameters, the
  1011.          "DCS" parameter must be used.
  1012.  
  1013.     (3)  Interworking is not guaranteed if any bit apart from
  1014.          those specially named are used in the
  1015.          NonBasicParameters
  1016.  
  1017.     From X.400 to G3Fax, the body is created in the following
  1018.     way:
  1019.  
  1020.     (1)  Any trailing EOL markers on each bitstring is
  1021.          removed. The bistring is padded to a byte boundary.
  1022.  
  1023.     (2)  6 consecutive EOL markers are appended to each
  1024.          bitstring.
  1025.  
  1026.     (3)  The padded bitstrings are concatenated together
  1027.  
  1028.     An EOL marker is the bit sequence 000000000001 (11 zeroes
  1029.     and a one).
  1030.  
  1031.     From G3Fax to X.400, the body is created in the following
  1032.     way:
  1033.  
  1034.     (1)  The body is split into bitstrings at each occurrence
  1035.          of 6 consecutive EOL markers, and trailing EOLs and
  1036.          padding are removed
  1037.  
  1038.     (2)  Each bitstring is made into an ASN.1 BITSTRING
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045. Alvestrand, Thompson      Exp Dec 92                 [Page 19]
  1046.  
  1047. draft            X.400/MIME body equivalences           Jun 92
  1048.  
  1049.  
  1050.     (3)  The bitstrings are made into an ASN.1 SEQUENCE, which
  1051.          forms the body of the G3Fax body part.
  1052.  
  1053.  
  1054.     7.6.  application/postscript - postscript-body-part
  1055.  
  1056.     X.400 Body Part: Extended Body Part, OID postscript-body-part
  1057.     MIME Content-Type: application/postscript
  1058.     Conversion Type: Byte Copy
  1059.  
  1060.  
  1061.  
  1062.     7.7.  application/jpeg - jpeg-body-part
  1063.  
  1064.     X.400 Body Part: Extended Body Part, OID jpeg-body-part
  1065.     MIME Content-Type: application/jpeg
  1066.     Conversion Type: Byte Copy
  1067.  
  1068.  
  1069.  
  1070.     7.8.  image/gif - gif-body-part
  1071.  
  1072.     X.400 Body Part: Extended Body Part, OID gif-body-part
  1073.     MIME Content-Type: application/gif
  1074.     Conversion Type: Byte Copy
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100. Alvestrand, Thompson      Exp Dec 92                 [Page 20]
  1101.  
  1102. draft            X.400/MIME body equivalences           Jun 92
  1103.  
  1104.  
  1105.     8.  OID Assignments
  1106.     MIME-MHS-MAPPINGS DEFINITIONS ::= BEGIN
  1107.     EXPORT -- everything --;
  1108.  
  1109.     IMPORTS
  1110.        experimental
  1111.            FROM RFC1155-SMI;
  1112.        mime-mhs
  1113.            FROM MIME-MHS --Companion RFC--;
  1114.  
  1115.     mime-mhs-bp-data OBJECT IDENTIFIER ::=
  1116.             { mime-mhs-bodies 1};
  1117.  
  1118.     mime-mhs-bp-parameter OBJECT IDENTIFIER ::=
  1119.             { mime-mhs-bodies 2};
  1120.  
  1121.     mime-generic-data OBJECT IDENTIFIER ::=
  1122.             { mime-mhs-bp-data 1};
  1123.  
  1124.     mime-generic-parameters OBJECT IDENTIFIER ::=
  1125.             { mime-mhs-bp-parameter 1};
  1126.  
  1127.     mime-postscript-body OBJECT IDENTIFIER ::=
  1128.             { mime-mhs-bp-data 2};
  1129.  
  1130.     mime-jpeg-body OBJECT IDENTIFIER ::=
  1131.             { mime-mhs-bp-data 3};
  1132.  
  1133.     mime-gif-body OBJECT IDENTIFIER ::=
  1134.             { mime-mhs-bp-data 4};
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155. Alvestrand, Thompson      Exp Dec 92                 [Page 21]
  1156.  
  1157. draft            X.400/MIME body equivalences           Jun 92
  1158.  
  1159.  
  1160.     9.  IANA Registration form for new mappings
  1161.  
  1162.     To: IANA@isi.edu
  1163.     Subject: Registration of new X.400/MIME content type mapping
  1164.  
  1165.     MIME type name:
  1166.  
  1167.     (this must have been registered previously with IANA)
  1168.  
  1169.     X.400 body part:
  1170.  
  1171.     X.400 Object Identifier for Data:
  1172.  
  1173.     (If left empty, an OID will be assigned by IANA under
  1174.     mime-mhs-bp-data)
  1175.  
  1176.     X.400 Object Identifier for Parameters:
  1177.  
  1178.     (If left empty, an OID will be assigned by IANA under
  1179.     mime-mhs-bp-parameter.  If it is not used, fill in the
  1180.     words NOT USED.)
  1181.  
  1182.     X.400 ASN.1 Syntax:
  1183.  
  1184.     (must be an EXTENDED-BODY-PART-TYPE macro, or reference to
  1185.     a Basic body part type)
  1186.  
  1187.     Conversion algorithm:
  1188.  
  1189.     (must be defined completely enough for independent
  1190.     implementation. It may be defined by reference to RFCs).
  1191.  
  1192.     Person & email address to contact for further information:
  1193.  
  1194.     INFORMATION TO THE SUBMITTER:
  1195.  
  1196.     The accepted registrations will be listed in the "Assigned
  1197.     Numbers" series of RFCs.  The information in the
  1198.     registration form is freely distributable.
  1199.  
  1200.  
  1201.     10.  References
  1202.  
  1203.     [RFC-822]
  1204.          D.H. Crocker, Standard for the Format of ARPA
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210. Alvestrand, Thompson      Exp Dec 92                 [Page 22]
  1211.  
  1212. draft            X.400/MIME body equivalences           Jun 92
  1213.  
  1214.  
  1215.          Internet Text Messages.  Request for Comments 822,
  1216.          (August, 1982).
  1217.  
  1218.     [MIME]
  1219.          N. Borenstein, N. Freed, MIME: Mechanisms for
  1220.          Specifying and Describing the Format of Internet
  1221.          Message Bodies.  Request for Comments 1341, (June,
  1222.          1992).
  1223.  
  1224.     [RFC-1327]
  1225.          S.E. Hardcastle-Kille, Mapping between X.400(1988) /
  1226.          ISO 10021 and RFC-822.
  1227.  
  1228.     [MAPPING]
  1229.          H.T. Alvestrand, R.S. Miles, M.T. Rose,
  1230.          S.J. Thompson, Mapping between X.400 and RFC-822
  1231.          Message Bodies Internet-Draft, (June , 1992).
  1232.  
  1233.     [T.4]
  1234.          CCITT Recommendation T.4, Standardization of Group 3
  1235.          Facsimile Apparatus for Document Transmission (1988)
  1236.  
  1237.     [T.30]
  1238.          CCITT Recommendation T.30, Procedures For Document
  1239.          Facsimile Transmission in the General Switched
  1240.          Telephone Network (1988)
  1241.  
  1242.     [T.411]
  1243.          CCITT Recommendation T.411 (1988), Open Document
  1244.          Architecture (ODA) and Interchange Format,
  1245.          Introduction and General Principles
  1246.  
  1247.     [MOTIS]
  1248.          ISO/IEC International Standard 10021, Information
  1249.          technology - Text Communication - Message-Oriented
  1250.          Text Interchange Systems (MOTIS) (Parts 1 to 8)
  1251.  
  1252.     [X.400]
  1253.          CCITT, Data Communication Networks - Message Handling
  1254.          Systems - Recommendations X.400 - X.420 (1988
  1255.          version)
  1256.  
  1257.     [X.420]
  1258.          CCITT Recommendation X.420 (1988), Interpersonal
  1259.          Messaging System
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265. Alvestrand, Thompson      Exp Dec 92                 [Page 23]
  1266.  
  1267. draft            X.400/MIME body equivalences           Jun 92
  1268.  
  1269.  
  1270.     [RFC-X400USE]
  1271.          Harald Tveit Alvestrand, X.400 use of extended
  1272.          Character Sets, Internet Draft, June 1992
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320. Alvestrand, Thompson      Exp Dec 92                 [Page 24]
  1321.  
  1322. draft            X.400/MIME body equivalences           Jun 92
  1323.  
  1324.  
  1325.     Table of Contents
  1326.  
  1327.  
  1328.      Status of this Memo ................................    1
  1329.     1 Introduction ......................................    2
  1330.     2 Equivalence Table Definition ......................    3
  1331.     3 Generic conversions ...............................    4
  1332.     3.1 Byte copy .......................................    4
  1333.     3.2 Text Conversion .................................    4
  1334.     3.3 Image Conversion ................................    4
  1335.     3.4 Tunneling .......................................    4
  1336.     4 Conversion Table for known X.400 and MIME  Types
  1337.          ................................................    5
  1338.     4.1 MIME to X.400 Table .............................    5
  1339.     4.2 X.400 to MIME Table .............................    5
  1340.     5 Newly defined X.400 Body Parts ....................    7
  1341.     5.1 Use of OBJECT IDENTIFIERs and ASN.1 MACROS ......    7
  1342.     5.2 The Generic MIME Extended Body Part .............    8
  1343.     5.3 The PostScript body part ........................    9
  1344.     5.4 The JPEG body part ..............................   10
  1345.     5.5 The GIF body part ...............................   10
  1346.     6 Newly defined MIME content-types ..................   11
  1347.     6.1 The application/x400-bp content-type ............   11
  1348.     6.2 The image/g3fax content-type ....................   12
  1349.     6.2.1 G3Fax Parameters ..............................   12
  1350.     6.2.2 Content Encoding ..............................   13
  1351.     7 Equivalence Definitions ...........................   14
  1352.     7.1 IA5Text - text/plain ............................   14
  1353.     7.2 GeneralText - text/plain (ISO-8859) .............   15
  1354.     7.3 BilaterallyDefined -  application/octet-stream
  1355.          ................................................   16
  1356.     7.4 ODA - application/oda ...........................   17
  1357.     7.5 g3-facsimile - image/g3fax ......................   19
  1358.     7.6 application/postscript -  postscript-body-part
  1359.          ................................................   20
  1360.     7.7 application/jpeg - jpeg-body-part ...............   20
  1361.     7.8 image/gif - gif-body-part .......................   20
  1362.     8 OID Assignments ...................................   21
  1363.     9 IANA Registration form for new mappings ...........   22
  1364.     10 References .......................................   22
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375. Alvestrand, Thompson      Exp Dec 92                 [Page 25]
  1376.  
  1377.  
  1378.